// pages/todayFood/index.js
Page({

  /**
   * 页面的初始数据
   */
  data: {
    searchKeyword: '',
    date: '',
    foodList: [],
    firstFoodList:[]
  },

    /**
   * 生命周期函数--监听页面加载
   */
  onLoad(options) {
    // 可以在这里获取当前日期
    const date = new Date();
    this.setData({
      date: `${date.getFullYear()}年${date.getMonth()+1}月${date.getDate()}日`
    });
    this.randomFood();
    console.log(this.data.foodList);
  },
  
  async randomFood() {
    try {
      // 调用云函数获取数据
      const foodRes = await wx.cloud.callFunction({
        name: 'selectFunction',
        data: {
          collectionName: 'todayFood'
        }
      });
      
      // console.log('原始数据:', foodRes);
      
      // 从返回结果中提取数据数组
      const allFoods = foodRes.result.data;
      
      // 随机挑选5个不重复的美食
      const randomFoods = this.getRandomItems(allFoods, 5);
      
      // 更新页面数据
      this.setData({
        foodList: randomFoods,
        firstFoodList:randomFoods
      });
      
      // console.log('随机挑选后的数据:', this.data.foodList);
    } catch (error) {
      console.error('获取随机美食失败:', error);
      wx.showToast({
        title: '获取推荐失败',
        icon: 'none'
      });
    }
  },
  
  // 辅助函数：从数组中随机选取指定数量的不重复元素
  getRandomItems(arr, count) {
    // 如果数组长度小于等于需要的数量，直接返回整个数组
    if (arr.length <= count) {
      return [...arr];
    }
    
    // 创建一个数组副本以避免修改原数组
    const shuffled = [...arr];
    let i = arr.length;
    let temp, randomIndex;
    
    // Fisher-Yates 洗牌算法
    while (i--) {
      randomIndex = Math.floor(Math.random() * (i + 1));
      // 交换元素
      temp = shuffled[randomIndex];
      shuffled[randomIndex] = shuffled[i];
      shuffled[i] = temp;
    }
    
    // 返回前count个元素
    return shuffled.slice(0, count);
  },


  // 输入框内容变化时触发
  onSearchInput: function(e) {
    // console.log(e.detail.value);
    this.setData({
      searchKeyword: e.detail.value
    });
    // console.log(this.data.searchKeyword);
    if (!this.data.searchKeyword) {
      this.setData({
        foodList:this.data.firstFoodList
      });
    } 
  },

  onSearchClick:function(){
    const keyword = this.data.searchKeyword.trim();

    if (!keyword) {
      wx.showToast({
        title: '请输入搜索内容',
        icon: 'none'
      });
      return;
    }

    this.searchFood(keyword)
  },

  async searchFood(foodName){
    const searchRes = await wx.cloud.callFunction({
      name:'selectFunction',
      data:{
        collectionName:'todayFood',
        queryCondition:{
          name:foodName
        }
      }
    })
    // console.log(searchRes);
    if (searchRes.result.data.length>0) {
      this.setData({
        foodList:searchRes.result.data,
      })
    } else {
      wx.showToast({
        title: '没有这份美食',
        icon: 'none'
      });
    }
  },


  
  // viewDetail: function(e) {
  //   const foodId = e.currentTarget.dataset.id;
  //   wx.navigateTo({
  //     url: `/pages/food-detail/food-detail?id=${foodId}`
  //   });
  // },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady() {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow() {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide() {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload() {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh() {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom() {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage() {

  }
})